import java.util.Scanner;

/**
 * @author 陈艺菲
 * @date 2025/2/23 20:07
 * @description [这里简要描述类的功能]
 * 2025居比绝对上岸！
 */
public class JavaSE4 {
    public static void main(String[] args) {
        System.out.println("请输入你要求de数字：");
        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
//        fac(a);
//        System.out.println(fac1(a)); //ctr+z 误删回到上一步
        System.out.println(fib1(a));

        scanner.close();
    }

    public static void fac(int x){
        //这个方法用来打印数字x的每一位
        if(x<10){
            System.out.println(x);
            return;
        }

        fac(x/10);
        System.out.println(x%10);

    }

    public static int fac1(int y){
        //用这个方法求数字x每一位的和
        if(y<10){
            return y;
        }
        int sum =y%10+fac1(y/10);
        return sum;
    }

    public static int fac2(int z){
        //这个方法用来求1~n的和
        if(z==1){
            return 1;
        }
        int sum=z+fac2(z-1);
        return sum;
    }

    public static int fun3(int a){
        //用这个方法求n的阶乘 太大的数字会超出int表示范围
        if(a==1){
            return 1;
        }
        int fac=a*fun3(a-1);
        return fac;
    }

    public static int fib(int n){
        //用递归的方法求斐波那契数 化成树状图就知道会大量重复运算 效率不高
        if(n==1||n==2){
            return 1;
        }
       return fib(n-1)+fib(n-2);

    }

    public static int fib1(int n){
        //用迭代（循环）的方法求斐波那契数 效率高
        int f1=1;
        int f2=1;
        int f3=0;
        for (int i = 3; i <= n; i++) {
            f3=f1+f2;
            f1=f2;
            f2=f3;
        }
        return f3;
    }
}


